namespace B.Z.Inventory.API.Read.DTO
{
    /// <summary>
    /// 出入库统计DTO
    /// </summary>
    public class InOutboundStatisticsDto
    {
        /// <summary>
        /// 统计时间范围开始
        /// </summary>
        public DateTime? StartDate { get; set; }
        
        /// <summary>
        /// 统计时间范围结束
        /// </summary>
        public DateTime? EndDate { get; set; }
        
        /// <summary>
        /// 入库总数量
        /// </summary>
        public int TotalInboundQuantity { get; set; }
        
        /// <summary>
        /// 出库总数量
        /// </summary>
        public int TotalOutboundQuantity { get; set; }
        
        /// <summary>
        /// 入库操作次数
        /// </summary>
        public int InboundOperationCount { get; set; }
        
        /// <summary>
        /// 出库操作次数
        /// </summary>
        public int OutboundOperationCount { get; set; }
        
        /// <summary>
        /// 净库存变化（入库-出库）
        /// </summary>
        public int NetInventoryChange { get; set; }
        
        /// <summary>
        /// 按日期的统计明细
        /// </summary>
        public List<DailyInOutStatistics> DailyStatistics { get; set; } = new List<DailyInOutStatistics>();
    }
    
    /// <summary>
    /// 每日出入库统计
    /// </summary>
    public class DailyInOutStatistics
    {
        /// <summary>
        /// 日期
        /// </summary>
        public DateTime Date { get; set; }
        
        /// <summary>
        /// 当日入库数量
        /// </summary>
        public int InboundQuantity { get; set; }
        
        /// <summary>
        /// 当日出库数量
        /// </summary>
        public int OutboundQuantity { get; set; }
        
        /// <summary>
        /// 当日净变化
        /// </summary>
        public int NetChange { get; set; }
    }
}